package com.tan00xu.service;

import com.tan00xu.pojo.User;
import com.tan00xu.vo.UserVo;
import com.tan00xu.vo.Result;

public interface UserService {

    /**
     * 根据用户id查询用户
     * @param id 用户id
     * @return User
     */
    User getUserById(Long id);

    /**
     * 查询用户的id，昵称，头像
     * @param userId 用户的id
     * @return UserVo 用户信息映射
     */
    UserVo getUserVoByUserId(Long userId);

    /**
     * 根据账号和密码去查询用户
     * @param account 账户名
     * @param password 密码
     * @return User对象
     */
    User getUserByAccountAndPassword(String account, String password);

    /**
     * 根据token在redis缓存中查询用户信息
     * @param token 前端传回的token
     * @return Result
     */
    Result getUserByToken(String token);

    /**
     * 根据账号查询用户
     * @param account 用户账号
     * @return User对象
     */
    User getUserByAccount(String account);

    /**
     * 保存注册用户
     * @param user user对象
     */
    void save(User user);
}
